package br.com.locasis.entity;

// Generated 24/05/2012 20:14:44 by Hibernate Tools 3.4.0.CR1

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Transient;

import org.hibernate.validator.NotNull;

import br.com.locasis.utilitarios.UtilString;

/**
 * Agendamento generated by hbm2java
 */
@Entity
@Table(name = "valor_pagamento")
public class ValorPagamento implements java.io.Serializable {

	private Integer idValorPagamento;
	private Integer quantidade;
	private Float valorUnitario;
	private Float desconto;
	private Float total;
	private boolean flgAtivo;
	private TipoValorPagamento tipoValorPagamento;
	private Aluguel aluguel;

	private Integer tipoDesconto;
	
	public ValorPagamento() {
	}
	
	public ValorPagamento(TipoValorPagamento tipoValorPagamento) {
		this.tipoValorPagamento = tipoValorPagamento;
	}

	@Transient
	public Integer getTipoDesconto() {
		return tipoDesconto;
	}

	@Transient
	public void setTipoDesconto(Integer tipoDesconto) {
		this.tipoDesconto = tipoDesconto;
	}

	@Id
	@Column(name = "id_valor_pagamento", unique = true, nullable = false)
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	public Integer getIdValorPagamento() {
		return idValorPagamento;
	}

	public void setIdValorPagamento(Integer idValorPagamento) {
		this.idValorPagamento = idValorPagamento;
	}

	@Column(name = "quantidade", nullable = true)
	public Integer getQuantidade() {
		return quantidade;
	}

	public void setQuantidade(Integer quantidade) {
		this.quantidade = quantidade;
	}

	@Column(name = "valor_unitario", nullable = true)
	public Float getValorUnitario() {
		return valorUnitario;
	}

	public void setValorUnitario(Float valorUnitario) {
		this.valorUnitario = valorUnitario;
	}

	@Column(name = "desconto", nullable = true)
	public Float getDesconto() {
		return desconto;
	}

	public void setDesconto(Float desconto) {
		this.desconto = desconto;
	}

	@Column(name = "total", nullable = true)
	public Float getTotal() {
		return total;
	}

	public void setTotal(Float total) {
		this.total = total;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_tipo_valor_pagamento", nullable = false)
	@NotNull
	public TipoValorPagamento getTipoValorPagamento() {
		return tipoValorPagamento;
	}

	public void setTipoValorPagamento(TipoValorPagamento tipoValorPagamento) {
		this.tipoValorPagamento = tipoValorPagamento;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_aluguel", nullable = false)
	@NotNull
	public Aluguel getAluguel() {
		return aluguel;
	}

	public void setAluguel(Aluguel aluguel) {
		this.aluguel = aluguel;
	}

	@Column(name = "flg_ativo", nullable = false)
	public boolean isFlgAtivo() {
		return flgAtivo;
	}

	public void setFlgAtivo(boolean flgAtivo) {
		this.flgAtivo = flgAtivo;
	}
	
	@SuppressWarnings("static-access")
	@Transient
	public String getTotalFormatado() {
		if(this.getTotal() != null){
			/*
			DecimalFormat df = new DecimalFormat("#,###.00");
			return "R$ " + df.format(this.getTotal());
			*/
			return UtilString.getInstance().formatarMoeda(this.getTotal()); 
		}
		return null;
	}

}
